草庐IT

MySQL IF 然后用数学

全部标签

c# - 通过编写 C dll 来加速 C# 中的数学代码?

我有一个非常大的嵌套for循环,其中对float执行一些乘法和加法。for(inti=0;i这个循环占用了我大部分的处理时间,是一个瓶颈。如果我用C重写这个循环并从C#连接到它,我是否会看到任何速度提升?编辑:我更新了代码以显示s和c是如何生成的。此外,内部循环实际上是从0到i,尽管它可能对问题没有太大影响EDIT2:我在VC++中实现了该算法,并通过dll将其与C#链接,并且在启用所有优化后,速度比C#提高了28%。启用SSE2的论点特别有效。使用MinGW和gcc4.4编译只提供了15%的速度提升。刚刚试用了英特尔编译器,发现这段代码的速度提高了49%。

C#检查进程是否存在然后关闭它

我试图在C#中关闭一个进程,但我如何检查它是否先打开?用户要求此功能,其中一些用户仍将使用其他进程的关闭按钮。所以,现在工作正常:Process.GetProcessesByName("ProcessName")[0].CloseMainWindow();现在,我如何首先检查它是否存在,这是行不通的:if(Process.GetProcessesByName("ProcessName")[0]!=null){...} 最佳答案 尝试这样做以避免进程在第一次调用GetProcessesByName后关闭的竞争条件:Process[]p

c# - 使用数学运算符评估字符串

这个问题在这里已经有了答案:Evaluatingstring"3*(4+2)"yieldint18[duplicate](13个答案)关闭9年前。是否有一种简单的方法来评估像这样的字符串“(4+8)*2”这样您就可以获得24的int值?还是需要做很多工作才能完成...?

c# - 在 C# 中使用数学符号显示方程

我有一个非常简单的应用程序,可以生成方程式,非常简单的,比如4+5=xx+4=1215/x=3x^2=4sqrt(6)=x当我向自己展示像x+4=12这样的方程式时,我可以很好地阅读它,但如果x^2=4就更好了将显示为x2=4。它不必像图像一样,可以是其他任何东西,但它应该是这样用户可以理解方程式。是否有一些图书馆可以帮我解决这个问题? 最佳答案 您可以将MathML库添加到您的应用程序中。这是一个通用的数学格式化库。MathMLinC#这些示例还包括非XML定义的方程式。您可能正在寻找的另一个库应该是用于C#的LaTeX,不过,我

c# - MemoryStream 到 String,然后返回到 MemoryStream,而不添加任何字节(编码等)

好的,我看过一些文章here和here,但他们没有做我需要做的事情,我遇到了一些麻烦。我正在接收一段作为内存流的加密数据。我需要以某种方式将内存流写入文件(我编写模型的方式,最好是字符串),然后从文件中检索字符串并将其作为内存流发送到要解密的服务。我只是使用流读取器将内存流存储为字符串,并使用编码将字符串读入内存。问题是我收到一条错误消息,提示我的加密数据已损坏。我认为这意味着我以某种方式更改了字节。这是将内存流读入字符串的代码:using(StreamReaderreader=newStreamReader(dataKeyResponse.CiphertextBlob)){encry

c# - 独占锁定文件然后删除/移动它

我正在用C#实现一个类,该类应该监视一个目录,在文件被删除时处理它们,然后在处理完成后立即删除(或移动)已处理的文件。由于可以有多个线程运行此代码,第一个获取文件并独占锁定它,因此没有其他线程会读取同一个文件并且没有外部进程或用户可以以任何方式访问.我想在文件被删除/移动之前保持锁定状态,这样就不会有另一个线程/进程/用户访问它的风险。到目前为止,我尝试了2个实现选项,但没有一个能如我所愿。选项1FileStreamfs=file.Open(FileMode.Open,FileAccess.Read,FileShare.Delete);//ReadandprocessFile.Dele

c# - 评估数学表达式的最佳算法?

评估数学表达式的最佳算法是什么?我希望能够稍微优化一下,因为我可能有一个包含各种变量的公式,我可能需要使用不同的变量对其进行数百次评估。所以基本上,如果我最初可以解析公式,以便以某种方式对其进行优化,然后我可以根据需要多次将变量传递给这个优化版本,每次它都会为我生成一个结果。我将使用Delphi或C#编写此代码。我已经使用调车场算法编写了类似的东西,但每次我需要计算相同的公式时,我都必须经过解析阶段。必须有更好的方法来做到这一点。 最佳答案 如果你想用Delphi来做,你可以看看JclExprEval单元是如何工作的,它是JEDIC

c# - 有什么理由让 Timer 将 AutoReset 设置为 false,然后在其经过的事件期间重新启动自身?

我刚碰到这段代码,但我不明白。是否有理由使用这种设计,而不是仅在AutoReset为true的情况下重新运行经过的代码?privatereadonlyTimerTimer=newTimer();protectedoverridevoidOnStart(string[]args){Logger.InfoFormat("Starting{0}.",ServiceName);try{//IfEnabledissettotrueandAutoResetissettofalse,theTimerraisestheElapsedeventonlyonce,thefirsttimetheinterv

2023美国大学数学建模美赛春季赛Z题思路详细代码

题目的第一问要求:COMAP的现代运动会跨学科委员会(ICMG)有兴趣探索创造性的选择、战略和政策,以确保奥运会取得成功并继续通过体育将世界联系在一起。你的任务是提出支持ICMG工作的建议。ICMG建议从多个角度建立衡量举办奥运会影响的指标:经济、土地使用、人类满意度(运动员和观众)、旅行、未来改进的机会、主办城市/国家声望以及您的团队确定的其他标准。我们分析如下,可以从以下角度考虑:经济影响:考虑衡量举办奥运会对主办城市/国家的经济影响,可以采用以下指标:GDP增长率、就业机会增加量、吸引外资量、商业活动量等。土地使用:考虑衡量举办奥运会对土地使用的影响,可以采用以下指标:使用土地面积、土地

C#:通用数学函数(Min、Max 等)

我正在考虑为基本数学运算(如Min、Max等)编写通用函数。但是我不知道如何比较两个通用类型:publicTMax(Tv1,Tv2)whereT:struct{return(v1>v2?v1:v2);}那怎么样?谢谢。 最佳答案 您可能想要constrain要实现的通用类型IComparable:publicTMax(Tv1,Tv2)whereT:struct,IComparable然后使用CompareTo方法:{return(v1.CompareTo(v2)>0?v1:v2);} 关